feat(hooks): add json-error-recovery hook to prevent infinite retry loops#741
feat(hooks): add json-error-recovery hook to prevent infinite retry loops#741BowTiedSwan wants to merge 1 commit intocode-yeongyu:devfrom
Conversation
|
All contributors have signed the CLA. Thank you! ✅ |
|
I have read the CLA Document and I hereby sign the CLA |
|
Thank you for this contribution! Your Current Issues:
What I Like:
Next Steps:
Why Keeping Open: Feel free to reopen if you need more time. Thank you again! 🙏 |
|
Thank you for this valuable json-error-recovery hook contribution! Your feature is well-designed and addresses a real issue (#735). However, this PR has been inactive for 23 days with no response to the rebase/CLA request. Given the merge conflicts and stale state, closing this for now. Please feel free to reopen with a fresh PR when you're ready! 🙏 |
Summary
This PR introduces a new hook
json-error-recoveryto address Issue #735.Problem
When a tool call fails due to a JSON parse error (e.g., "Expected '}'"), the agent often retries the exact same malformed payload, leading to an infinite retry loop that wastes tokens and stalls the session.
Solution
The new
json-error-recoveryhook detects specific JSON error patterns in tool outputs:When detected, it injects a high-priority system reminder into the tool output, instructing the agent to:
Changes
src/hooks/json-error-recovery/index.tssrc/hooks/index.tsandsrc/index.tsto register the new hook.src/config/schema.tsto include the new hook name.tests/json_recovery.test.ts.Verification
bun test tests/json_recovery.test.ts-> PASSED.Summary by cubic
Adds a json-error-recovery hook to stop infinite retry loops when tool calls fail with JSON parse errors by instructing the agent to fix and resend valid JSON. Fixes #735.
Written for commit b54a235. Summary will update on new commits.